Software development is no longer confined to a pool of developers behind closed doors. Teams involved in development of a software program now sits far apart across continents. To manage code delivery in such spread-out teams, senior developers in the teams are generally assigned responsibilities to manually approve all the codes.
When more and more programs to be assessed get stacked up for reviews, the reviews may be delayed. It is not humanly possible for reviewers to review code properly; however, due to business timelines, code gets approved. Continuous delivery practices try to negate this by introducing checks and balances to ensure quality (e.g., Travis CI which ensures code quality by checking for compilation errors).
Another important aspect of code quality is “comprehensibility”. Software program's comprehensibility largely depends upon the descriptiveness and use of meaningful program constructs from natural languages as well as domain specific vocabulary.
Code reviews tend to focus on the functional aspect of code; however, the comprehensibility aspect unfortunately often takes a back seat in this setup. Programs written in mnemonics or non-meaningful vocabularies are difficult to understand and thus are more likely to take longer for bug fixing and specifically in cases where the software maintenance has to be done by another team.
There is no existing system which can either automatically calculate comprehensibility of a code to be assessed and help evaluators to make a decision whether to accept or reject the code.
One of the known techniques is to calculate a comment to code ratio, which is not a good indicator of program readability. These techniques do not look into the content of the commented lines in code. It is possible to have a good comment to code ratio by inserting even blank or invalid comments in the code.